package dao;

import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import modelo.ClientePF;
import static dao.BancoDeDados.*;

/**
 *
 * @author Ramayane
 */
public class ClientePFDao {

    public static boolean inserirClientePF(ClientePF cliente) {
        try {
            Object[] valores = new Object[11];
            valores[0] = cliente.getNome();
            valores[1] = cliente.getTipo_pessoa();
            valores[2] = cliente.getTelefone1();
            valores[3] = cliente.getTelefone2();
            valores[4] = cliente.getEmail();
            valores[5] = cliente.getEndereco();
            valores[6] = cliente.getCidade();
            valores[7] = cliente.getEstado();
            valores[8] = cliente.getCpf();
            valores[9] = cliente.getData_nascimento();
            valores[10] = cliente.getSexo();
            executaOperacao("insert into cliente (nome, tipo_pessoa, telefone1, telefone2, email, endereco, cidade, estado, cpf, data_nascimento, sexo ) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", valores);
            return true;
        } catch (Exception ex) {
            Logger.getLogger(ClientePFDao.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }

    public static boolean alterarClientePF(ClientePF cliente){
        try {
            Object[] valores = new Object[11];
            valores[0] = cliente.getNome();
            valores[1] = cliente.getTelefone1();
            valores[2] = cliente.getTelefone2();
            valores[3] = cliente.getEmail();
            valores[4] = cliente.getEndereco();
            valores[5] = cliente.getCidade();
            valores[6] = cliente.getEstado();
            valores[7] = cliente.getCpf();
            valores[8] = cliente.getData_nascimento();
            valores[9] = cliente.getSexo();
            valores[10] = cliente.getCodigo();
            executaOperacao("update cliente set nome = ?, telefone1 = ?, telefone2 = ?, email = ?, endereco = ?, cidade = ?, estado = ?, cpf = ?, data_nascimento = ?, sexo = ? where codigo = ?", valores);
            return true;
        } catch (Exception ex) {
            Logger.getLogger(ClientePFDao.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }

    public static boolean excluirClientePF(Integer codigo){
        try {
            Object[] codigo_cliente = new Object[1];
            codigo_cliente[0] = codigo;
            executaOperacao("delete from cliente where codigo = ?", codigo_cliente);
            return true;
        } catch (Exception ex) {
            Logger.getLogger(ClientePFDao.class.getName()).log(Level.SEVERE, null, ex);
            return false;
        }
    }

//Busca o codigo do cliente pelo CPF
    public static Integer buscaCodigoClientePF(String cpf) {
        Integer codigo_cliente;
        Object[] cpf_cliente = new Object[1];
        cpf_cliente[0] = cpf;
        Resultado rs_cliente = executaConsulta("Select * from cliente where cpf = ?", cpf_cliente);
        
        if(rs_cliente.qtdRegistros() != 0){
        codigo_cliente = (Integer) rs_cliente.valorCampo(0, "codigo");
        }
        else{
            codigo_cliente = 0;
        }
        return codigo_cliente;
    }

    public static ClientePF buscaClientePF(Integer codigo){

        Object[] codigo_cliente = new Object[1];
        codigo_cliente[0] = codigo;
        ClientePF clientepf = new ClientePF();


        Resultado rs_cliente = executaConsulta("Select * from cliente where codigo = ?", codigo_cliente);

        if (rs_cliente.qtdRegistros() != 0) {
                clientepf.setCodigo((Integer) rs_cliente.valorCampo(0, "codigo"));
                clientepf.setNome((String) rs_cliente.valorCampo(0, "nome"));
                clientepf.setTipo_pessoa((String) rs_cliente.valorCampo(0, "tipo_pessoa"));
                clientepf.setCpf((String) rs_cliente.valorCampo(0, "cpf"));
                clientepf.setSexo((String) rs_cliente.valorCampo(0, "sexo"));
                clientepf.setData_nascimento((java.sql.Date) (Date) rs_cliente.valorCampo(0, "data_nascimento"));
                clientepf.setTelefone1((String) rs_cliente.valorCampo(0, "telefone1"));
                clientepf.setTelefone2((String) rs_cliente.valorCampo(0, "telefone2"));
                clientepf.setEmail((String) rs_cliente.valorCampo(0, "email"));
                clientepf.setEndereco((String) rs_cliente.valorCampo(0, "endereco"));
                clientepf.setCidade((String) rs_cliente.valorCampo(0, "cidade"));
                clientepf.setEstado((String) rs_cliente.valorCampo(0, "estado"));

                return clientepf;
        }
        return null;
    }

}
